package com.atguigu.gmall.product.rpc;

import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.product.service.BaseCategory1Service;
import com.atguigu.gmall.product.to.CategoryTree;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @author lfy
 * @Description
 * @create 2023-08-18 11:08
 * 统一规则：
 * 远程调用；路径命名方式；  /api/inner/服务名/路径
 */
@Slf4j
@RequestMapping("/api/inner/product")
@RestController
public class CategoryTreeRpcController {


    @Autowired
    BaseCategory1Service baseCategory1Service;

    /**
     * 获取所有分类，并组装成树形结构
     * 默认读取超时是 1s；
     * web-all 调用 product
     * 浏览器发请求 == weball开始调用
     * 第1秒：  开始调用； 获取三级分类...   读取超时是 1s；超时后发起重试
     * 第2秒：  开始重试： 获取三级分类...   读取超时是 1s；超时后响应错误
     * 3秒时间浏览器得到错误结果
     *
     * @return
     */
    @GetMapping("/category/tree")
    public Result getCategoryTreeData() {

        log.info("获取三级分类数据中...");
//        try {
//            Thread.sleep(5000);
//        } catch (InterruptedException e) {
//            throw new RuntimeException(e);
//        }
        //TODO
        List<CategoryTree> categoryTrees = baseCategory1Service.getCategoryTreeData();

        return Result.ok(categoryTrees);
    }
}
